SCI Server 를 Rocky에 설치
1. 개요
- 본 문서는 SCI Server 를 Rocky 에서 설치하는 과정 표준 가이드입니다.
- 문서보안 솔루션을 이용하기 위해서는 SCI Server 와 문서보안 DB가 구성되어야 합니다.
2. SCI_Server 설치를 위한 필요환경 준비
필요 환경
- OS : Rocky
- DB : MariaDB
- SCI 서버 설치 파일
- DB 구성 스크립트
- 방화벽 포트 오픈
3. 사전 작업
가. OS 사용자 계정생성
- OS의 계정명은 임의로 생성하여도 무관
- root 계정으로 접속하여 진행
useradd softcamp
passwd softcamp
New password : [임의PW입력]
Retype new password : [임의PW입력]
다. 방화벽 포트 오픈 및 방화벽 재시작
- SCI 서버와 디비작업을 위하여 포트 개방
- AKS : 62000, LMS : 62002, PMS : 62004, SCISM : 8080, DB : 3306
firewall-cmd --permanent --zone=public --add-port=62000/tcp
firewall-cmd --permanent --zone=public --add-port=62002/tcp
firewall-cmd --permanent --zone=public --add-port=62004/tcp
firewall-cmd --permanent --zone=public --add-port=8080/tcp
firewall-cmd --permanent --zone=public --add-port=3306/tcp
firewall-cmd --reload
라. SCI_Server 설치파일 업로드 및 권한부여
- 설치파일을 FTP 를 이용하여 /home/사용자계정/아래의 경로에 업로드 후 압축해제
바. MariaDB 설치 및 설정 변경
폐쇄망의 경우
- 사전 설치 요청을 한다.
- 바이너리로 MariaDB를 가지고 가서 설치 한다.
바이너리로 MariaDB 설치 참고 링크
11.4버전 설치를 위한 설정 파일 생성
vi /etc/yum.repos.d/MariaDB.repo
/etc/yum.repos.d/MariaDB.repo 내용
# MariaDB 11.4 RedHatEnterpriseLinux repository list - created 2024-11-08 08:23 UTC
# https://mariadb.org/download/
[mariadb]
name = MariaDB
# rpm.mariadb.org is a dynamic mirror if your preferred mirror goes offline. See https://mariadb.org/mirrorbits/ for details.
# baseurl = https://rpm.mariadb.org/11.4/rhel/$releasever/$basearch
baseurl = https://tw1.mirror.blendbyte.net/mariadb/yum/11.4/rhel/$releasever/$basearch
# gpgkey = https://rpm.mariadb.org/RPM-GPG-KEY-MariaDB
gpgkey = https://tw1.mirror.blendbyte.net/mariadb/yum/RPM-GPG-KEY-MariaDB
gpgcheck = 1
추후 상위버전으로 설치 필요시에는 값이 바뀌기에 MariaDB Server Repositories 에서 값 확인 필요
dnf update
dnf install -y mariadb-server
systemctl enable mariadb
- MariaDB의 환경설정 vi 편집기로 MariaDB 환경설정 파일을 오픈
vi /etc/my.cnf.d/server.cnf
- 아래의 설정을 추가 후 저장
파일별 맞는 [항목]의 값들을 넣어주세요
기존에 [항목] 이 있는데 하위에 넣으면 상위의 값만 사용이 됩니다.
각 파일에 맞는 항목을 [mysql], [mysqld]등의 항목에 맞는 값을 넣어주세요.
자동 설치를 통해 설치한 경우 50-server.cnf, 50-client.cnf파일로 사용하시면 됩니다.
- 아래의 설정을 각 항목에 추가, 고객사 환경에 맞는 값으로 기록해야 하는 항목 맨 하단에 있음.
- 기본 경로로 설치
- DB데이터 경로 지정하여 설치
- server.cnf
- client.cnf
[mysql]
# CLI 클라이언트에서 자동 완성 기능 비활성화
no-auto-rehash
[mysqld_safe]
# 동시에 열 수 있는 파일의 최대 개수 설정
open-files-limit = 65535
[mysqld]
#초기값 : bind-address = 127.0.0.1 에서 수정
bind-address = 0.0.0.0
#초기값 : character-set-server = utf8 에서 수정
character-set-server = utf8mb4
#초기값 : collation-server=utf8_general_ci 에서 수정
collation-server=utf8mb4_general_ci
#초기값 : expire_logs_days = 10 에서 수정
expire_logs_days = 3
# 호스트명 확인 과정 생략으로 접속 속도 향상
skip-name-resolve
# 테이블명을 소문자로 저장하고 대소문자 구분 없이 처리
lower_case_table_names = 1
# 새로운 연결이 생성될 때마다 문자셋을 UTF-8로 설정
init_connect = SET NAMES utf8
# 새로운 연결의 문자열 정렬 규칙 설정
init_connect = SET collation_connection = utf8mb4_general_ci
# === 로그 설정 ===
# 경고 메시지 로깅 활성화
log_warnings = 1
# 바이너리 로그 형식을 ROW 형식으로 설정 (상세한 변경 내용 기록)
binlog_format = ROW
# 바이너리 로그를 디스크에 즉시 동기화
sync_binlog = 1
# 바이너리 로그 캐시 크기 설정
binlog_cache_size = 1M
# 복제 환경에서 함수 생성 허용
log_bin_trust_function_creators = 1
# 일반 쿼리 로그 설정
log-output = FILE
general_log = OFF
# 슬로우 쿼리 로그 설정
slow_query_log = ON
# 3초 이상 걸리는 쿼리를 슬로우 쿼리로 기록
long_query_time = 3
# === 연결 및 스레드 설정 ===
# 최대 동시 접속자 수
max_connections = 1000
# 최대 접속 에러 수
max_connect_errors = 100
# 대기 큐 크기
back_log = 100
# 스레드 캐시 크기
thread_cache_size = 1000
# 미사용 연결 타임아웃 (초)
wait_timeout = 3600
interactive-timeout = 3600
# === 쿼리 캐시 설정 ===
# 쿼리 캐시 비활성화 (성능 향상을 위해)
query_cache_size = 0M
query_cache_type = 0
query_cache_limit = 0M
# === 메모리 테이블 설정 ===
# 메모리 테이블의 최대 크기
max_heap_table_size = 32M
# 임시 테이블의 최대 크기
tmp_table_size = 32M
# 패킷의 최대 크기
max_allowed_packet = 1024M
# === 버퍼 설정 ===
# 인덱스 읽기 버퍼 크기
read_rnd_buffer_size = 4M
# 테이블 스캔 버퍼 크기
read_buffer_size = 2M
# 정렬 버퍼 크기
sort_buffer_size = 2M
# 조인 버퍼 크기
join_buffer_size = 2M
# 열린 테이블 캐시 크기
table_open_cache = 10000
# === 트랜잭션 설정 ===
# 트랜잭션 격리 수준 설정
transaction_isolation = READ-COMMITTED
# === 시스템 설정 ===
# DNS 조회 비활성화
skip_name_resolve = ON
# 외부 잠금 비활성화
skip_external_locking = ON
# 호스트 캐시 비활성화
skip-host-cache
# === MyISAM(스토리지 엔진) 설정 ===
# MyISAM 키 버퍼 크기
key_buffer_size = 32M
# 대량 삽입 버퍼 크기
bulk_insert_buffer_size = 64M
# MyISAM 정렬 버퍼 크기
myisam_sort_buffer_size = 128M
# MyISAM 임시 파일 최대 크기
myisam_max_sort_file_size = 10G
# MyISAM 복구 스레드 수
myisam_repair_threads = 1
# === InnoDB 설정 ===
# 기본 스토리지 엔진 설정
default-storage-engine = InnoDB
default-tmp-storage-engine = InnoDB
# 테이블별 파일 사용 (관리의 용이성)
innodb_file_per_table = 1
# InnoDB 로그 파일 크기
innodb_log_file_size = 512M
# InnoDB 로그 버퍼 크기
innodb_log_buffer_size = 32M
# 트랜잭션 커밋 시 로그 동기화 설정
innodb_flush_log_at_trx_commit = 1
# 잠금 대기 타임아웃 (초)
innodb_lock_wait_timeout = 30
# === 시스템 리소스에 따른 설정 ===
# ****** 중 요 ******
###고객사에 맞게 셋팅되어야 하는 설정###
# 물리 메모리의 50%로 설정 (예: 32GB 메모리의 경우 16GB 설정)
innodb_buffer_pool_size = 16G
# CPU 코어 수의 1/2로 설정 (예: 8코어의 경우 4 설정)
innodb_write_io_threads = 4
innodb_read_io_threads = 4
[client]
default-character-set = utf8mb4
[mysql]
default-character-set = utf8mb4
RPM으로 기본 설치시 파일들이 기본으로 설정되는 경로
# basedir = /usr
# datadir = /var/lib/mysql
# tmpdir = /tmp
# log_error = /var/log/mariadb/mariadb.log
# log_bin = /var/lib/mysql/mysql-bin
# 참고: log_bin이 활성화된 경우에만 해당 경로에 파일 생성
# general_log_file = /var/lib/mysql/hostname.log
# 참고: general_log가 활성화된 경우에만 해당 경로에 파일 생성
# slow_query_log_file = /var/lib/mysql/hostname-slow.log
# 참고: slow_query_log가 활성화된 경우에만 해당 경로에 파일 생성
# innodb_data_home_dir = /var/lib/mysql
# innodb_data_file_path = ibdata1:12M:autoextend
# innodb_log_group_home_dir = /var/lib/mysql
- server.cnf
- client.cnf
[mysql]
# CLI 클라이언트에서 자동 완성 기능 비활성화
no-auto-rehash
[mysqld_safe]
# 동시에 열 수 있는 파일의 최대 개수 설정
open-files-limit = 65535
[mysqld]
#초기값 : bind-address = 127.0.0.1 에서 수정
bind-address = 0.0.0.0
#초기값 : character-set-server = utf8 에서 수정
character-set-server = utf8mb4
#초기값 : collation-server=utf8_general_ci 에서 수정
collation-server=utf8mb4_general_ci
# 호스트명 확인 과정 생략으로 접속 속도 향상
skip-name-resolve
# 테이블명을 소문자로 저장하고 대소문자 구분 없이 처리
lower_case_table_names = 1
# 새로운 연결이 생성될 때마다 문자셋을 UTF-8로 설정
init_connect = SET NAMES utf8
# 새로운 연결의 문자열 정렬 규칙 설정
init_connect = SET collation_connection = utf8mb4_general_ci
# === 디렉토리 설정 ===
## DB데이터/로그를 /home/softcamp하위에 생성한다는 가정으로 지정한 샘플
## dir관련 설정은 고객사 환경에 맞게 지정 필요
# MySQL 설치 기본 디렉토리
## dir관련 설정
basedir = /usr/local/mysql
# 데이터 파일이 저장되는 디렉토리
## dir관련 설정
datadir = /home/softcamp/DB/data
# 임시 파일이 저장되는 디렉토리
## dir관련 설정
tmpdir = /home/softcamp/DB/tmp
# === 로그 설정 ===
# 에러 로그 파일 위치
## dir관련 설정
log_error = /home/softcamp/DB/log/maria.err
# 경고 메시지 로깅 활성화
log_warnings = 1
# 바이너리 로그 설정 (복제 및 백업용)
## dir관련 설정
log_bin = /softcamp/DB/bin-log/mysql-bin
# 바이너리 로그 형식을 ROW 형식으로 설정 (상세한 변경 내용 기록)
binlog_format = ROW
# 바이너리 로그를 디스크에 즉시 동기화
sync_binlog = 1
# 바이너리 로그 캐시 크기 설정
binlog_cache_size = 1M
# 복제 환경에서 함수 생성 허용
log_bin_trust_function_creators = 1
# 일반 쿼리 로그 설정
log-output = FILE
general_log = OFF
## dir관련 설정
general_log_file = /home/softcamp/DB/log/general.log
# 슬로우 쿼리 로그 설정
slow_query_log = ON
## dir관련 설정
slow_query_log_file = /home/softcamp/DB/log/slow-query.log
# 3초 이상 걸리는 쿼리를 슬로우 쿼리로 기록
long_query_time = 3
# === 연결 및 스레드 설정 ===
# 최대 동시 접속자 수
max_connections = 1000
# 최대 접속 에러 수
max_connect_errors = 100
# 대기 큐 크기
back_log = 100
# 스레드 캐시 크기
thread_cache_size = 1000
# 미사용 연결 타임아웃 (초)
wait_timeout = 3600
interactive-timeout = 3600
# === 쿼리 캐시 설정 ===
# 쿼리 캐시 비활성화 (성능 향상을 위해)
query_cache_size = 0M
query_cache_type = 0
query_cache_limit = 0M
# === 메모리 테 이블 설정 ===
# 메모리 테이블의 최대 크기
max_heap_table_size = 32M
# 임시 테이블의 최대 크기
tmp_table_size = 32M
# 패킷의 최대 크기
max_allowed_packet = 1024M
# === 버퍼 설정 ===
# 인덱스 읽기 버퍼 크기
read_rnd_buffer_size = 4M
# 테이블 스캔 버퍼 크기
read_buffer_size = 2M
# 정렬 버퍼 크기
sort_buffer_size = 2M
# 조인 버퍼 크기
join_buffer_size = 2M
# 열린 테이블 캐시 크기
table_open_cache = 10000
# === 트랜잭션 설정 ===
# 트랜잭션 격리 수준 설정
transaction_isolation = READ-COMMITTED
# === 시스템 설정 ===
# DNS 조회 비활성화
skip_name_resolve = ON
# 외부 잠금 비활성화
skip_external_locking = ON
# 호스트 캐시 비활성화
skip-host-cache
# === MyISAM(스토리지 엔진) 설정 ===
# MyISAM 키 버퍼 크기
key_buffer_size = 32M
# 대량 삽입 버퍼 크기
bulk_insert_buffer_size = 64M
# MyISAM 정렬 버퍼 크기
myisam_sort_buffer_size = 128M
# MyISAM 임시 파일 최대 크기
myisam_max_sort_file_size = 10G
# MyISAM 복구 스레드 수
myisam_repair_threads = 1
# === InnoDB 설정 ===
# 기본 스토리지 엔진 설정
default-storage-engine = InnoDB
default-tmp-storage-engine = InnoDB
# InnoDB 데이터 홈 디렉토리
## dir관련 설정
innodb_data_home_dir = /home/softcamp/DB/maria-data
# 테이블별 파일 사용 (관리의 용이성)
innodb_file_per_table = 1
# InnoDB 데이터 파일 경로 및 크기 설정
## dir관련 설정
innodb_data_file_path = ibdata1:1G;ibdata2:1G;ibdata3:1G:ibdata4:1G:ibdata5:10M:autoextend
# InnoDB 로그 파일 디렉토리
## dir관련 설정
innodb_log_group_home_dir = /home/softcamp/DB/maria-data
# InnoDB 로그 파일 크기
innodb_log_file_size = 512M
# InnoDB 로그 버퍼 크기
innodb_log_buffer_size = 32M
# 트랜잭션 커밋 시 로그 동기화 설정
innodb_flush_log_at_trx_commit = 1
# 잠금 대기 타임아웃 (초)
innodb_lock_wait_timeout = 30
# === 시스템 리소스에 따른 설정 ===
# ====== 중 요 ======
###고객사에 맞게 셋팅되어야 하는 설정 아래 참고 설정###
# 물리 메모리의 50%로 설정 (예: 32GB 메모리의 경우 16GB 설정)
innodb_buffer_pool_size = 16G
# CPU 코어 수의 1/2로 설정 (예: 8코어의 경우 4 설정)
innodb_write_io_threads = 4
innodb_read_io_threads = 4
[client]
default-character-set = utf8mb4
[mysql]
default-character-set = utf8mb4
물리 메모리확인 방법(innodb_buffer_pool_size의 값 구하기)
- 계산기에서 명령어로 나온값 /1024 /1024 /2 하였을때 나온 정수에 G붙여서 기입
cat /proc/meminfo | grep MemTotal
CPU Core확인 방법(innodb_write_io_threads, innodb_read_io_threads의 값 구하기)
- 계산기에서 명령어로 나온값 / 2 하였을때 나온 정수